<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>预编译例子</title>
</head>
<body>

</body>
<script>
    // 1. 创建AO对象 Activation Object (执行期上下文)
    // 2. 找行参和变量声明, 将变量和行参名作为AO属性名, 值为undefined
    // 3. 将实参指和行参统一
    // 4. 在函数体里面找函数声明,值赋予函数体
    function test(a, b) {
        console.log(a);
        console.log(b);
        var b = 234;
        console.log(b);
        a = 123;
        console.log(a)
        function a() {}
        var a;
        b = 234;
        var b = function() {}
        console.log(a);
        console.log(b);
    }
    test(1);

    // 1: AO{
    //  a : function() {}
    //  b : undefined
    // }  预编译
    // function() {}
    // undefined
    //
    // 234
    //
    // 123
    //
    // 123
    // function() {}
</script>
</html>
